﻿namespace Excerise;

public class Program
{
    public static void Main(string[] args)
    {
        // 十一、继承与多态
        // 动物类与子类
        // 定义一个Animal基类，包含方法MakeSound()，用于发出动物的声音，输出“动物发出声音”。
        // 定义两个子类Dog和Cat，分别重写MakeSound()方法，Dog输出“汪汪汪”，Cat输出“喵喵喵”。
        // 在主程序中创建Dog和Cat对象，并通过Animal类型的变量调用MakeSound()方法，观察多态的效果。

        //父类
        var animal = new Animal();
        animal.MakeSound();
        //子类
        Animal dog = new Dog();
        dog.MakeSound();
        Cat cat = new Cat();
        cat.MakeSound();

        // 图形类与子类
        // 创建一个Shape基类，包含方法CalculateArea()，用于计算图形的面积，返回0。
        // 定义两个子类Circle和Rectangle，分别重写CalculateArea()方法。Circle类包含半径属性（Radius），Rectangle类包含长（Length）和宽（Width）属性。
        // 在主程序中创建Circle和Rectangle对象，并通过Shape类型的变量调用CalculateArea()方法，观察多态的效果。
        Shape circle = new Circle(4.0);
        System.Console.WriteLine(circle.CalculateArea());

        Circle circle2 = new Circle(4.0);
        System.Console.WriteLine(circle2.CalculateArea());

        Shape rectangle = new Rectangle(3.0, 4.0);
        System.Console.WriteLine(rectangle.CalculateArea());

    }
}